home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Color;
- import java.awt.Dimension;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.Point;
- import java.awt.Rectangle;
- import javax.swing.BoundedRangeModel;
- import javax.swing.JComponent;
- import javax.swing.JProgressBar;
- import javax.swing.LookAndFeel;
- import javax.swing.UIManager;
- import javax.swing.event.ChangeListener;
- import javax.swing.plaf.ComponentUI;
- import javax.swing.plaf.ProgressBarUI;
-
- public class BasicProgressBarUI extends ProgressBarUI {
- private static final Dimension PREFERRED_INNER_HORIZONTAL = new Dimension(146, 12);
- private static final Dimension PREFERRED_INNER_VERTICAL = new Dimension(12, 146);
- private int cachedPercent;
- private int cellLength;
- private int cellSpacing;
- private Color selectionForeground;
- private Color selectionBackground;
- protected JProgressBar progressBar;
- protected ChangeListener changeListener;
-
- // $FF: synthetic method
- static int access$0(BasicProgressBarUI var0) {
- return var0.getCachedPercent();
- }
-
- // $FF: synthetic method
- static void access$1(BasicProgressBarUI var0, int var1) {
- var0.setCachedPercent(var1);
- }
-
- public static ComponentUI createUI(JComponent var0) {
- return new BasicProgressBarUI();
- }
-
- protected int getAmountFull(Insets var1, int var2, int var3) {
- int var4 = 0;
- BoundedRangeModel var5 = this.progressBar.getModel();
- if (var5.getMaximum() - var5.getMinimum() != 0) {
- if (this.progressBar.getOrientation() == 0) {
- var4 = (int)Math.round((double)var2 * this.progressBar.getPercentComplete());
- } else {
- var4 = (int)Math.round((double)var3 * this.progressBar.getPercentComplete());
- }
- }
-
- return var4;
- }
-
- private int getCachedPercent() {
- return this.cachedPercent;
- }
-
- protected int getCellLength() {
- return this.progressBar.isStringPainted() ? 1 : this.cellLength;
- }
-
- protected int getCellSpacing() {
- return this.progressBar.isStringPainted() ? 0 : this.cellSpacing;
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- Dimension var2 = this.getPreferredSize(this.progressBar);
- if (this.progressBar.getOrientation() == 0) {
- var2.width = 32767;
- } else {
- var2.height = 32767;
- }
-
- return var2;
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- Dimension var2 = this.getPreferredSize(this.progressBar);
- if (this.progressBar.getOrientation() == 0) {
- var2.width = 10;
- } else {
- var2.height = 10;
- }
-
- return var2;
- }
-
- protected Dimension getPreferredInnerHorizontal() {
- return PREFERRED_INNER_HORIZONTAL;
- }
-
- protected Dimension getPreferredInnerVertical() {
- return PREFERRED_INNER_VERTICAL;
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- Insets var3 = this.progressBar.getInsets();
- FontMetrics var4 = this.progressBar.getFontMetrics(this.progressBar.getFont());
- Dimension var2;
- if (this.progressBar.getOrientation() == 0) {
- var2 = new Dimension(this.getPreferredInnerHorizontal());
- if (this.progressBar.isStringPainted()) {
- String var5 = this.progressBar.getString();
- int var6 = var4.stringWidth(var5);
- if (var6 > var2.width) {
- var2.width = var6;
- }
-
- int var7 = var4.getHeight() + var4.getDescent();
- if (var7 > var2.height) {
- var2.height = var7;
- }
- }
- } else {
- var2 = new Dimension(this.getPreferredInnerVertical());
- if (this.progressBar.isStringPainted()) {
- String var8 = new String("100%");
- int var10 = var4.stringWidth(var8);
- if (var10 > var2.width) {
- var2.width = var10;
- }
-
- var8 = this.progressBar.getString();
- var10 = var4.stringWidth(var8);
- if (var10 > var2.width) {
- var2.width = var10;
- }
-
- int var12 = var4.getHeight() + var4.getDescent();
- if (var12 > var2.height) {
- var2.height = var12;
- }
- }
- }
-
- var2.width += var3.left + var3.right;
- var2.height += var3.top + var3.bottom;
- return var2;
- }
-
- protected Color getSelectionBackground() {
- return this.selectionBackground;
- }
-
- protected Color getSelectionForeground() {
- return this.selectionForeground;
- }
-
- protected Point getStringPlacement(Graphics var1, String var2, int var3, int var4, int var5, int var6) {
- FontMetrics var7 = this.progressBar.getFontMetrics(this.progressBar.getFont());
- int var8 = var7.stringWidth(var2);
- int var9 = var7.getAscent() + var7.getDescent();
- return this.progressBar.getOrientation() == 0 ? new Point(var3 + Math.round((float)(var5 / 2 - var8 / 2)), var4 + var7.getHeight() - Math.round((float)(var7.getDescent() / 2))) : new Point(var3 + Math.round((float)(var5 / 2 - var8 / 2)), var4 + Math.round((float)(var6 / 2 + var9 / 2)));
- }
-
- protected void installDefaults() {
- this.progressBar.setOpaque(true);
- LookAndFeel.installBorder(this.progressBar, "ProgressBar.border");
- LookAndFeel.installColorsAndFont(this.progressBar, "ProgressBar.background", "ProgressBar.foreground", "ProgressBar.font");
- this.cellLength = UIManager.getInt("ProgressBar.cellLength");
- this.cellSpacing = UIManager.getInt("ProgressBar.cellSpacing");
- this.selectionForeground = UIManager.getColor("ProgressBar.selectionForeground");
- this.selectionBackground = UIManager.getColor("ProgressBar.selectionBackground");
- }
-
- protected void installListeners() {
- this.changeListener = new ChangeHandler(this);
- this.progressBar.addChangeListener(this.changeListener);
- }
-
- public void installUI(JComponent var1) {
- this.progressBar = (JProgressBar)var1;
- this.installDefaults();
- this.installListeners();
- }
-
- public void paint(Graphics var1, JComponent var2) {
- BoundedRangeModel var3 = this.progressBar.getModel();
- int var4 = 0;
- int var5 = 0;
- int var6 = this.progressBar.getWidth();
- int var7 = this.progressBar.getHeight();
- Insets var8 = this.progressBar.getInsets();
- var4 += var8.left;
- var5 += var8.top;
- var6 -= var8.right + var4;
- var7 -= var8.bottom + var5;
- int var10 = this.getCellLength() + this.getCellSpacing();
- int var11 = this.getAmountFull(var8, var6, var7);
- var1.setColor(this.progressBar.getForeground());
- if (this.progressBar.getOrientation() == 0) {
- if (this.getCellSpacing() == 0 && var11 > 0) {
- var1.fillRect(var4, var5, var4 - var8.left + var11, var7);
- } else {
- int var12 = var4 + var11;
-
- for(int var9 = var4; var9 < var12; var9 += var10) {
- var1.fillRect(var9, var5, this.getCellLength(), var7);
- }
- }
- } else if (this.getCellSpacing() == 0 && var11 > 0) {
- var1.fillRect(var4, var7 - var11 + var8.top, var6, var11);
- } else {
- int var18 = var7 - var11;
-
- for(int var17 = var7 - this.getCellLength() + this.getCellSpacing(); var17 >= var18; var17 -= var10) {
- var1.fillRect(var4, var17, var6, this.getCellLength());
- }
- }
-
- if (this.progressBar.isStringPainted()) {
- this.paintString(var1, var4, var5, var6, var7, var11, var8);
- }
-
- }
-
- protected void paintString(Graphics var1, int var2, int var3, int var4, int var5, int var6, Insets var7) {
- String var8 = this.progressBar.getString();
- var1.setFont(this.progressBar.getFont());
- Point var9 = this.getStringPlacement(var1, var8, var2, var3, var4, var5);
- Rectangle var10 = var1.getClipBounds();
- if (this.progressBar.getOrientation() == 0) {
- var1.setColor(this.getSelectionForeground());
- var1.drawString(var8, var9.x, var9.y);
- var1.setColor(this.getSelectionBackground());
- var1.setClip(var6 + var7.left, var3, var4, var5);
- var1.drawString(var8, var9.x, var9.y);
- } else {
- var1.setColor(this.getSelectionBackground());
- var1.drawString(var8, var9.x, var9.y);
- var1.setColor(this.getSelectionForeground());
- var1.setClip(var2, var5 - var6 + var7.top, var4, var5);
- var1.drawString(var8, var9.x, var9.y);
- }
-
- var1.setClip(var10.x, var10.y, var10.width, var10.height);
- }
-
- private void setCachedPercent(int var1) {
- this.cachedPercent = var1;
- }
-
- protected void setCellLength(int var1) {
- this.cellLength = var1;
- }
-
- protected void setCellSpacing(int var1) {
- this.cellSpacing = var1;
- }
-
- protected void uninstallDefaults() {
- LookAndFeel.uninstallBorder(this.progressBar);
- }
-
- protected void uninstallListeners() {
- this.progressBar.removeChangeListener(this.changeListener);
- }
-
- public void uninstallUI(JComponent var1) {
- this.uninstallDefaults();
- this.uninstallListeners();
- this.progressBar = null;
- }
- }
-